/* Copyright (C) 2006, Levin Du.
 * Author:  Levin Du <zsdjw@21cn.com>
 * All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the Free
 * Software Foundation; either version 2, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANT; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public LIcense for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, 59 Temple
 * Place - Suite 330, Boston, MA 02111-1307, USA.
 */
#ifndef  __NEWTPROG_H__
#define  __NEWTPROG_H__

typedef struct _newtProgressWindow *newtProgressWindow;

/* open window and allocated resources */
newtProgressWindow newtProgressWindowOpen(int width, int height, const char *title);
/* show message, start new line */
#define newtProgressWindowPrint(win, fmt, args...) \
    newtProgressWindowPrint0(win, 1, fmt, ##args)
/* show message, continue last line */
#define newtProgressWindowCont(win, fmt, args...) \
    newtProgressWindowPrint0(win, 0, fmt, ##args)
/* report progress */
void newtProgressWindowStep(newtProgressWindow win, int steps);
void newtProgressWindowReport(newtProgressWindow win, int percent);
/* close window and free resources */
void newtProgressWindowClose(newtProgressWindow win);
/* private */
void newtProgressWindowPrint0(newtProgressWindow win, int start_newline, const char *fmt, ...);

#endif
